package com.shenda.device.analysis.protocol;

import java.io.IOException;
import java.io.InputStream;

import com.swak.rxtx.codec.Encodes;

/**
 * 导入需要适配协议： 以前的文件不符合规范
 * 
 * @author lifeng
 * @date 2020年5月17日 上午11:14:42
 */
public class AdaptProtpcol extends NewProtpcol implements Encodes {

	/**
	 * 不需要的字符
	 */
	String unnecessary = "AABBCCA301DDEE";

	@Override
	public byte[] readHead(InputStream input) throws IOException {
		int skip = 0;
		while (true) {

			// 重置到开头
			input.reset();

			// 跳过错误的数据
			input.skip(skip);

			// 读取头部
			byte[] head = super.readHead(input);

			// 解析命令
			String message = this.encodeHex(head);

			// 满足直接返回
			if (!message.startsWith(unnecessary)) {
				return head;
			}

			// 跳过的字节数
			skip += this.decodeHex(unnecessary).length;
		}
	}

	@Override
	public byte[] readData(InputStream input) throws IOException {
		return super.readData(input);
	}

}
